#!/bin/env ruby

require "./Objet.rb"

##
#=Classe Potion
#La classe Potion gère les intéractions possibles entre le héros et une potion. La classe Potion hérite de la classe Objet.
#
#=Attributs :
#[@energie] Représente l'énergie qui s'ajoute à l'energie du Heros si ce dernier la consomme
#[@defense] Représente la défense qui s'ajoute à la défense du Heros si ce dernier la consomme.
#[@force] Représente la force qui s'ajoute à la force du Heros si ce dernier la consomme.
#
class Potion < Objet
	
	@energie
	@defense
	@force

	private_class_method :new
	
	#Methode de creation
	def Potion.fabriquer(id,nom,energie,force,defense)
		new(id,nom,energie,force,defense)
	end
	
	#Methode d'initialisation	
	def initialize(id,nom,energie,force,defense)
		super(id,nom)
		@energie,@defense,@force=energie,defense,force
	end
		
	#accesseurs
      #Retourne @energie
	def getEnergie
		return @energie
	end
	
      #Affecte @energie avec la valeur passée en paramètre
	def setEnergie(stat)
		@energie=stat
	end
	
      #Retourne @defense
	def getDefense
		return @defense
	end
	
      #Affecte @defense avec la valeur passée en paramètre
	def setDefense(stat)
		@defense=stat
	end
	
      #Retourne @force
	def getForce
		return @force
	end
	
      #Affecte @force avec la valeur passée en paramètre
	def setForce(stat)
		@force=stat
	end
	
	    #Ajoute la potion à l'Inventaire du Heros
	def seFaireRamasserPar(heros, score)
		heros.getInventaire().ajouterElt(self)
	end
	
	#methodes d'instances
	#Ajoute les bonus de la potion au stats du Heros
	def consommerPar(heros)
		heros.augmenterEnergie(@energie)
		heros.augmenterDefense(@defense)
		heros.augmenterForce(@force)
		heros.getInventaire().retirerElt(self)
	end
	
	#methode d'affichage
	def to_s()
		rc	= "\n"
		texte	= super()+rc
		texte +=$ref[$langue => "energie"].to_s()+"\t:  #{@energie}"+rc
        texte +=$ref[$langue => "defense"].to_s()+"\t:  #{@defense}"+rc
        texte +=$ref[$langue => "force"].to_s()+"\t:  #{@force}"

		return texte
	end

	
end # Marqueur de fin de classe
